草庐IT

Swift、OpenGL 和 glVertexAttribPointer

全部标签

C++ 试图用 OpenGL 绘制大图像时内存不足

我使用MFC和OpenGL在C++中创建了一个简单的2D图像查看器。此图像查看器允许用户打开图像、放大/缩小、平移以及查看不同颜色层(青色、黄色、品红色、黑色)的图像。该程序非常适合大小合理的图像。但是,我正在对一些非常大的图像进行压力测试,并且很容易耗尽内存。我拥有的一张这样的图片是16,700x15,700。我的程序甚至在绘制任何东西之前就会耗尽内存,因为我正在动态创建一个大小为heightxwidthx4的UCHAR[]。我将它乘以4,因为当我将该数组提供给glTexImage2D(GLTEXTURE_2D,0,GL_RGB8,width,height,0,GL_RGBA,GLU

c++ - 在 Windows 7 的 wpf 窗口中创建 OpenGL 控件时出错

我已经用C++创建了一个OpenGL控件,并希望在WPF应用程序中使用它。我已经成功地完成了这项工作,它在Vista和XP机器上运行良好,但是当我在Windows7机器上打开我的项目时,WPF设计窗口将不会显示。当我尝试运行程序时出现异常:“无法创建在程序集‘LabUserInterface、Version=1.0.0.0、Culture=neutral、PublicKeyToken=null’中定义的‘Window1’的实例。调用的目标已抛出异常。标记文件中有错误'Window1.xaml'第1行位置9。”'LabUserInterface'是我的OpenGL东西所在的地方。我在WP

c++ - 为 OpenGL 的顶点缓冲区对象动态打包数据

我正在尝试为OOP中的VBO编写一个包装器,它由addVertex、addNormal..addX、flush()和render()函数组成。起初,我将顶点、法线、索引保存在单独的vector中,例如:std::vectorvertexBuffer;std::vectorcolorBuffer;std::vectornormalBuffer;std::vectortexCoordBuffer;std::vectorindexBuffer;但正如我在某处读到的那样,为每个VBOID保留不同的VBOID是完全低效的,因此最好按VertexNormalTexCoordColor-VNTC-V

c++ - 当我的相机远离物体时,为什么 OpenGL 会剔除我的多边形?

我正在使用片段着色器对从OBJ文件加载的对象进行Lambert和Fog着色,但多边形存在一个小问题。当我将相机位置从对象移开时,网格中的一些多边形被“剔除”。例子:老实说,我不知道为什么会发生这种情况,也不知道为什么只有当我离开物体时才会发生这种情况。这是我的着色器:顶点着色器#version400outstructvData{vec4pos;vec4texcoord;vec3normal;}fdata;voidmain(){fdata.texcoord=gl_MultiTexCoord0;fdata.normal=normalize(gl_NormalMatrix*gl_Normal

c++ - 用于桌面 Gui 应用程序的 Qt 4.x/5.x 和 OpenGL : What module to choose?

我正在为Linux/Windows桌面使用Qt和OpenGL开始一个新的GUI应用程序项目。到目前为止,我的假设是:使用QtGUI(C++...而不是QML/QtQuick2)和OpenGL4.1或更高版本(要求)。阅读之后,我完全不知道选择什么路径。什么途径可以使我的应用程序在支持和库方面永不过时。Qt4.x还是Qt5.x?标准OpenGL或QGL或QOpenGL或QtOpenGL包装器?QWidget/QGLWidget(Qt4.x)或QWindow(Qt5.x)?该应用程序旨在在桌面环境中运行,并将执行大量文件(几何)打开/保存、实例化3D绘画和​​一些成像。如果可能的话,有人可

c++ - 不同的 OpenGL 行为取决于所使用的 Maya 视口(viewport)

我有在Maya中显示简单OpenGL形状的cpp代码。如果使用旧视口(viewport),那么我就得到了我想要的:沿x轴的箭头:但是,如果我在ViewPort2.0中使用相同的代码,则箭头会跟随相机移动:只有当我应用glTranslatef(我需要使用它)时才会发生这种情况。这是一段代码:for(inti=0;i我怎样才能在"new"Maya视口(viewport)中有正确的行为? 最佳答案 根据我的评论,这看起来像翻译发生在与渲染不同的坐标系中,这向我暗示绑定(bind)了不同的矩阵堆栈。因此,在旧视口(viewport)中(您的

c++ - OpenGL Sprite 绘制质量低

我正在尝试使用openglglsl和glm库渲染Sprite。当我使用glBegin、glEnd在旧管道中渲染Sprite时,一切都很好,但是当我使用着色器时,在旋转Sprite后,它的绘制质量非常差,如图所示:http://sm.uploads.im/t/I3lpf.png我的渲染代码:GLuintp;GLuintvertex_shader,fragment_shader;GLuintVBO,VAO;glm::mat4projection_matrix=glm::ortho(0.0F,640.0F,480.0F,0.0F,-1.0F,1.0F);voidsprite_init(){p

c++ - OpenGL 渲染与自己的 Phong 照明实现

我已经使用以(0,0,0)为中心并直接注视球体基元的相机实现了Phong照明方案。以下是使用OpenGL查看场景以及使用自己实现渲染场景的场景文件的相关内容:ambient010dir_light111-3-4-5#Aredspherewith0.5greenambiance,centeredat(0,0,0)withradius1material00.501001000000001010sphere00001OpenGL生成的结果图像。我的渲染应用程序生成的图像。如您所见,两者之间存在各种差异:我的图像上的镜面高光比OpenGL中的小。漫反射表面似乎没有以正确的方式漫射,导致我的图像

c++ - OpenGL 中的 GUI 工具包

我想开发一个类似于PureData的应用程序(用C++),但有一个很酷的GUI和一个更好的文档......是的,类似于Max/MSP或Reaktor,但免费且开放!为了创建一个吸引人的、响应式的和可移植的界面,我正在考虑使用OpenGL。在我看来有类似BlenderGUI的东西.在开始开发我的自定义GUI工具包之前,我四处搜索以了解是否存在我可以使用的东西,我发现:Juce:它似乎很受支持,但我不明白你是否只能在你的界面中嵌入OpenGLCanvas,或者是否可以使用OpenGL呈现所有小部件。nUI:它看起来真的很酷而且便携,但是......它的论坛是一片沙漠,而且真的很难找到教程!

c++ - 将 C++ OpenGL 游戏移植到 iPad

我们有一款游戏,是用C++和OpenGL为Windows和Mac开发的。现在我们要将游戏移植到iPad。有没有比用Objective-C编写整个程序更好的方法来让我们的游戏在iPad上运行?现在我是iPhone/iPad菜鸟,如果问题很愚蠢,请原谅。 最佳答案 您可能只需要在Obj-C中编写直接处理iOS的一小部分(创建gl表面、输入等)。休息应该没问题。您只需确保您将仅使用OpenGLES中的OpenGL子集。 关于c++-将C++OpenGL游戏移植到iPad,我们在StackOve